import os

from qwen_agent.agents import Assistant


def get_file_list(folder_path):
    # 初始化文件列表
    file_list = []

    # 遍历文件夹
    for root, dirs, files in os.walk(folder_path):
        for file in files:
            # 获取文件的完整路径
            file_path = os.path.join(root, file)
            # 将文件路径添加到列表中
            file_list.append(file_path)
    return file_list


file_list = get_file_list("./docs")
print(file_list)

llm_cfg = {
    "model": "qwen-plus",
    "model_server": "dashscope",
    "api_key": os.getenv("DASHSCOPE_API_KEY"),
    "generate_cfg": {
        "top_p": 0.7
    }
}

## 构建智能体
bot = Assistant(
    llm=llm_cfg,
    system_message="你是一个保险专家,根据你的经验来准确回答用户的问题",
    function_list=[],
    files=file_list
)

messages = []

while True:
    query = input("请输入问题：")
    if query == "exit":
        break
    messages.append({"role": "user", "content": query})
    res_chunk_list = list(bot.run(messages=messages))
    print("res_chunk_list:", res_chunk_list[-1])
    print("最终回答:", res_chunk_list[-1][0].get("content"))
    # 多轮对话: 要把大模型返回的答案,. 添加到messages,作为聊天上下文
    # messages
    for res in res_chunk_list:
        pass
    messages.extend(res)
